const person = {
  name: '乔振南',
  get aliasName() {
    return `**${this.name}**`;
  }
};

const proxy = new Proxy(person, {
  get(target, key, receiver) {
    console.log(key);

    // 可以将target理解为target的副本,使用taget[key]取值的时候,不会触发this.name的get,因为target和person的
    // 并不是同一个引用,这个时候使用receiver,它指向person的引用,从而避免this.name中的this指向target
    // return target[key];

    return Reflect.get(target, key, receiver);
  },
  set(target, key, value, receiver) {
    return Reflect.set(target, key, value, receiver);
  }
});
console.log(proxy.aliasName)
